﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gco;

namespace Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gmd
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.isotc211.org/2005/gmd")]
    [System.Xml.Serialization.XmlRootAttribute("MD_Metadata", Namespace = "http://www.isotc211.org/2005/gmd", IsNullable = false)]
    public class MD_Metadata_Type : AbstractObject_Type
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("fileIdentifier")]
        public CharacterString_PropertyType FileIdentifier { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("language")]
        public CharacterString_PropertyType Language { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("characterSet")]
        public MD_CharacterSetCode_PropertyType CharacterSet { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("parentIdentifier")]
        public CharacterString_PropertyType ParentIdentifier { get; set; }

        private System.Collections.ObjectModel.Collection<MD_ScopeCode_PropertyType> _hierarchyLevels = new System.Collections.ObjectModel.Collection<MD_ScopeCode_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("hierarchyLevel")]
        public System.Collections.ObjectModel.Collection<MD_ScopeCode_PropertyType> HierarchyLevels { get { return this._hierarchyLevels; } }

        private System.Collections.ObjectModel.Collection<CharacterString_PropertyType> _hierarchyLevelNames = new System.Collections.ObjectModel.Collection<CharacterString_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("hierarchyLevelName")]
        public System.Collections.ObjectModel.Collection<CharacterString_PropertyType> HierarchyLevelNames { get { return this._hierarchyLevelNames; } }

        private System.Collections.ObjectModel.Collection<CI_ResponsibleParty_PropertyType> _contacts = new System.Collections.ObjectModel.Collection<CI_ResponsibleParty_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("contact")]
        public System.Collections.ObjectModel.Collection<CI_ResponsibleParty_PropertyType> Contacts { get { return this._contacts; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("dateStamp")]
        public Date_PropertyType DateStamp { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("metadataStandardName")]
        public CharacterString_PropertyType MetadataStandardName { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("metadataStandardVersion")]
        public CharacterString_PropertyType MetadataStandardVersion { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("dataSetURI")]
        public CharacterString_PropertyType DataSetURI { get; set; }

        private System.Collections.ObjectModel.Collection<PT_Locale_PropertyType> _locales = new System.Collections.ObjectModel.Collection<PT_Locale_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("locale")]
        public System.Collections.ObjectModel.Collection<PT_Locale_PropertyType> Locales { get { return this._locales; } }

        private System.Collections.ObjectModel.Collection<MD_SpatialRepresentation_PropertyType> _spatialRepresentationInfos = new System.Collections.ObjectModel.Collection<MD_SpatialRepresentation_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("spatialRepresentationInfo")]
        public System.Collections.ObjectModel.Collection<MD_SpatialRepresentation_PropertyType> SpatialRepresentationInfos { get { return this._spatialRepresentationInfos; } }

        private System.Collections.ObjectModel.Collection<MD_ReferenceSystem_PropertyType> _referenceSystemInfos = new System.Collections.ObjectModel.Collection<MD_ReferenceSystem_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("referenceSystemInfo")]
        public System.Collections.ObjectModel.Collection<MD_ReferenceSystem_PropertyType> ReferenceSystemInfos { get { return this._referenceSystemInfos; } }

        private System.Collections.ObjectModel.Collection<MD_MetadataExtensionInformation_PropertyType> _metadataExtensionInfos = new System.Collections.ObjectModel.Collection<MD_MetadataExtensionInformation_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("metadataExtensionInfo")]
        public System.Collections.ObjectModel.Collection<MD_MetadataExtensionInformation_PropertyType> MetadataExtensionInfos { get { return this._metadataExtensionInfos; } }

        private System.Collections.ObjectModel.Collection<MD_Identification_PropertyType> _identificationInfos = new System.Collections.ObjectModel.Collection<MD_Identification_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("identificationInfo")]
        public System.Collections.ObjectModel.Collection<MD_Identification_PropertyType> IdentificationInfos { get { return this._identificationInfos; } }

        private System.Collections.ObjectModel.Collection<MD_ContentInformation_PropertyType> _contentInfos = new System.Collections.ObjectModel.Collection<MD_ContentInformation_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("contentInfo")]
        public System.Collections.ObjectModel.Collection<MD_ContentInformation_PropertyType> ContentInfos { get { return this._contentInfos; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("distributionInfo")]
        public MD_Distribution_PropertyType DistributionInfo { get; set; }

        private System.Collections.ObjectModel.Collection<DQ_DataQuality_PropertyType> _dataQualityInfo = new System.Collections.ObjectModel.Collection<DQ_DataQuality_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("dataQualityInfo")]
        public System.Collections.ObjectModel.Collection<DQ_DataQuality_PropertyType> DataQualityInfo { get { return this._dataQualityInfo; } }

        private System.Collections.ObjectModel.Collection<MD_PortrayalCatalogueReference_PropertyType> _portrayalCatalogueInfo = new System.Collections.ObjectModel.Collection<MD_PortrayalCatalogueReference_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("portrayalCatalogueInfo")]
        public System.Collections.ObjectModel.Collection<MD_PortrayalCatalogueReference_PropertyType> PortrayalCatalogueInfo { get { return this._portrayalCatalogueInfo; } }

        private System.Collections.ObjectModel.Collection<MD_Constraints_PropertyType> _metadataConstraints = new System.Collections.ObjectModel.Collection<MD_Constraints_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("metadataConstraints")]
        public System.Collections.ObjectModel.Collection<MD_Constraints_PropertyType> MetadataConstraints { get { return this._metadataConstraints; } }

        private System.Collections.ObjectModel.Collection<MD_ApplicationSchemaInformation_PropertyType> _applicationSchemaInfos = new System.Collections.ObjectModel.Collection<MD_ApplicationSchemaInformation_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("applicationSchemaInfo")]
        public System.Collections.ObjectModel.Collection<MD_ApplicationSchemaInformation_PropertyType> ApplicationSchemaInfos { get { return this._applicationSchemaInfos; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("metadataMaintenance")]
        public MD_MaintenanceInformation_PropertyType MetadataMaintenance { get; set; }

        private System.Collections.ObjectModel.Collection<DS_Aggregate_PropertyType> _series = new System.Collections.ObjectModel.Collection<DS_Aggregate_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("series")]
        public System.Collections.ObjectModel.Collection<DS_Aggregate_PropertyType> Series { get { return this._series; } }

        private System.Collections.ObjectModel.Collection<DS_DataSet_PropertyType> _describes = new System.Collections.ObjectModel.Collection<DS_DataSet_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("describes")]
        public System.Collections.ObjectModel.Collection<DS_DataSet_PropertyType> Describes { get { return this._describes; } }

        private System.Collections.ObjectModel.Collection<ObjectReference_PropertyType> _propertyTypes = new System.Collections.ObjectModel.Collection<ObjectReference_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("propertyType")]
        public System.Collections.ObjectModel.Collection<ObjectReference_PropertyType> PropertyTypes { get { return this._propertyTypes; } }

        private System.Collections.ObjectModel.Collection<ObjectReference_PropertyType> _featureTypes = new System.Collections.ObjectModel.Collection<ObjectReference_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("featureType")]
        public System.Collections.ObjectModel.Collection<ObjectReference_PropertyType> FeatureTypes { get { return this._featureTypes; } }

        private System.Collections.ObjectModel.Collection<ObjectReference_PropertyType> _featureAttributes = new System.Collections.ObjectModel.Collection<ObjectReference_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("featureAttribute")]
        public System.Collections.ObjectModel.Collection<ObjectReference_PropertyType> FeatureAttributes { get { return this._featureAttributes; } }
    }
}
